iT邦幫忙

2022 iThome 鐵人賽

DAY 13
0
  • 使用enumerate,不要用range(len(x))
city_list = ["Taipei","beijing","wuhan"]
for i in range(len(city_list)):
    print('%s: %s' %(i, city_list[i]))

city_list = ["Taipei","beijing","wuhan"]
for idx, city in enumerate(city_list):
    print('%s: %s' %(idx, city))

https://ithelp.ithome.com.tw/upload/images/20220913/201100423hiylhJjv7.jpg
相同的結果但是enumerate函數寫法更加簡潔,且有更高的閱讀性。

  • 使用List Comprehensions,不要用 for raw loop
    List Comprehension 例子是將一個 List 轉換成另外一個 List。
#Before
squares = []
for i in range(10):
     squares.append(i*i)
print(squares)
# After
squares = [i*i for i in range(10)]
print(squares)

  • 使用generator來節省記憶體
    當需要迭代較大的串列時候會消耗掉大量記憶體。因此建議使用generator來節省記憶體。如下範例
# save memory by generator
import sys

my_list = [i for i in range(100000)]
print(type(my_list))
print(sys.getsizeof(my_list), "bytes")

my_gen =(i for i in range(100000))
print(type(my_gen))
print(sys.getsizeof(my_gen), "bytes")

https://ithelp.ithome.com.tw/upload/images/20220913/20110042xGE4vuF5Tz.jpg

  • Python字典使用.get()來設定預設值
    get(key) 方法在 key值不在字典中時,可以返回預設值Non 或者設置的預設值。如果dict[key] 在 key不在字典中时,會造成KeyError 異常。
test_dict = {"name": "Wendy"}
name = test_dict.get("age")
print(name)

test_dict = {"name": "Wendy"}
name = test_dict.get("age", 0)
print(name)

test_dict = {"name": "Wendy", "age": 23}
name = test_dict.get("age", 0)
print(name)

https://ithelp.ithome.com.tw/upload/images/20220913/20110042fAe0nIbCrc.jpg

  • 使用collections.counter做字典中元素出現次數統計
from collections import Counter
my_list = [10,10,10,3,4,4,5,5,5,5]
counter = Counter(my_list)
print(counter)

https://ithelp.ithome.com.tw/upload/images/20220913/20110042GfLNTJfspX.png

  • 字串串接使用.join()
    可使用for迴圈迭代並串接上來,但是此方法效能較差
list_of_strings = ["Hello", "my", "name", "is", "Wendy"]
my_string = ""
for s in list_of_strings:
    my_string += s + " "
print(my_string)
建議使用.join()做字串串串接
list_of_strings = ["Hello", "my", "name", "is", "Wendy"]
my_string = " ".join(list_of_strings)
print(my_string)

上一篇
Day12: Python常見誤解和陷阱
下一篇
Day14: Python少為人知奇異之處
系列文
人生苦短我用python寫出乾淨程式碼22
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言